package com.aqiang.day0528_shop.main.contract

import com.aqiang.day0528_shop.main.entity.AreaEntity
import com.aqiang.day0528_shop.main.entity.BaseEntity
import com.aqiang.lib_core.mvp.BasePresenter
import com.aqiang.lib_core.mvp.IModel
import com.aqiang.lib_core.mvp.IView
import kotlinx.coroutines.Deferred

interface AreaContract {
    interface AreaView : IView{
        fun area(data:Deferred<BaseEntity<List<AreaEntity>>>)
        fun area1(data:Deferred<BaseEntity<List<AreaEntity>>>)
        fun area2(data:Deferred<BaseEntity<List<AreaEntity>>>)
    }

    interface AreaModel : IModel{
        fun getArea(id:Int):Deferred<BaseEntity<List<AreaEntity>>>
        fun getArea1(id:Int):Deferred<BaseEntity<List<AreaEntity>>>
        fun getArea2(id:Int):Deferred<BaseEntity<List<AreaEntity>>>
    }

    abstract class AreaPresenter(v:AreaView) : BasePresenter<AreaModel,AreaView>(v){
        abstract fun getArea(id:Int)
        abstract fun getArea1(id:Int)
        abstract fun getArea3(id:Int)
    }
}